package com.rz.admin.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.rz.admin.entity.Consumer;

import java.util.List;

public interface IConsumerService extends IService<Consumer> {
    /**
     * 翻页查询
     * @param consumer
     * @return
     */
    IPage<Consumer> getPage(Consumer consumer);

    /**
     * 新增/更新客户信息
     * @param consumer
     * @return
     */
    boolean onSave(Consumer consumer);

    /**
     * 逻辑删除客户信息
     * @param id
     * @return
     */
    boolean delete(Integer id);

    /**
     * 根据创建者id获取客户列表
     * @param crteMngId
     * @return
     */
    List<Consumer> getByCreteMngId(Integer crteMngId);

    /**
     * 列出包含自身的所有下级单位列表
     * @param mngId 当前系统操作用户id
     * @return
     */
    Consumer listConsumerTree(Integer mngId);

    /**
     * 获取指定单位的所有下级单位（包括下级的下级，但不包含自身）
     * @param consumerId
     * @return
     */
    List<Consumer> listChildren(Integer consumerId);

    /**
     * 获取指定单位的所有下级单位（包括下级的下级，但不包含自身）
     * @param id
     * @param result
     * @return
     */
    void getChildren(Integer id, List<Consumer> result);

    /**
     * 获取指定单位的所有下级单位id（包括下级的下级，但不包含自身）
     * @param consumerId
     * @return
     */
    List<Integer> listChildrenIds(Integer consumerId);

}
